<?php

class IndexController extends Zend_Controller_Action {
	public function init() {
// 		var_dump($_SESSION);
// 		die;
		/*
		 * Initialize action controller here
		 */
// 		$loaigiohoa=new Application_Model_LoaiGioHoa();
// 		//$this->view->loaigiohoa=$loaigiohoa->fetchAll();
// 		$this->view->loaigiohoa=$loaigiohoa->getAllLoaiGioHoa();
		try{
			$auth = Zend_Auth::getInstance();
			$infoUser = $auth->getIdentity();
			if(!empty($infoUser->tenkh)){
				$this->view->fullName = $infoUser->tenkh;
			}
		}catch(Exception $ex){
			echo "error when init IndexControoler: Error: ".$ex->getMessage();
		}
	
	}
	public function preDispatch() {//thiet lap che do baao ve trang
// 		$auth = Zend_Auth::getInstance();
// 		if (!$auth->hasIdentity()) {
// 			if ($this->_request->getActionName() != 'login') {
// 				$this->_redirect('/index/index');
// 			}
// 		}
	}
	
	public function loginAction() {
		$this->_helper->layout()->disableLayout();
		$this->_helper->viewRenderer->setNoRender(true);
		if ($this->_request->isPost()) {
			
			//1.Goi ket noi voi Zend Db
			$db = Zend_Registry::get('connectDB');
			//2. Khoi tao Zend Autho
			$auth = Zend_Auth::getInstance ();
			
			//3. Khai bao bang va 2 cot se su dung so sanh trong qua tronh login
			$authAdapter = new Zend_Auth_Adapter_DbTable($db);
			$authAdapter->setTableName('khachhang')
			->setIdentityColumn('username')
			->setCredentialColumn('password');
			
			//4. Lay gia tri duoc gui qua tu FORM
			$uname = $this->_request->getParam('username');
			$paswd = $this->_request->getParam('password');	
			//5. Dua vao so sanh voi du lieu khai bao o muc 3
			$authAdapter->setIdentity($uname);
			$authAdapter->setCredential(md5($paswd));
			
			//6. Kiem tra trang thai cua user neu status = 2 moi duoc login(dieu kien phu)
			$select = $authAdapter->getDbSelect();
			$select->where('trangthai = 2');
				
				
			//7. Lay ket qua truy van
			$result = $auth->authenticate($authAdapter);
			
			$flag = false;
			$ad=false;
			if ($result->isValid()) {
				//8. Lay nhung du lieu can thiet trong bang users neu login thanh cong
				$data = $authAdapter->getResultRowObject(null, array('password'));
				
				//9. Luu  nhung du lieu cua member vao session
				$auth->getStorage()->write($data);
				$flag = true;
				if($data->role==1)
					$ad=true;
			}
			if ($flag == true) {
				if($ad==true)
					$this->_redirect('/admin/index');
				else
					$this->_redirect('/index/index');
			}else{
				$this->_redirect('/index/errorlogin');
				//echo "Sai username hoặc mật khẩu!";
			}
		}
	}
	
	
	public function logoutAction() {
		$this->_helper->layout()->disableLayout();
		$this->_helper->viewRenderer->setNoRender(true);
		
		$auth = Zend_Auth::getInstance();
		$auth->clearIdentity();//Xóa thông tin về user.
		//Chuyển sang trang chủ
		$this->_redirect('index');
	}
	
	public function indexAction() {
		// action body
		try {
			$giohoa_table = new Application_Model_GioHoa ();
			//$this->view->giohoa = $giohoa_table->fetchAll ();
			$this->view->giohoa = $giohoa_table->getAllGioHoa();
//lấy danh sách 10 giỏ hoa,loại giỏ hoa bán chạy nhất
			$listloaigiohoa=$this->getListLoaigiohoa_bestselling();
			$this->view->listloaigiohoa_banchay=$listloaigiohoa;
			$listgiohoa=$this->getListGiohoa_bestselling();
			$this->view->listgiohoa_banchay=$listgiohoa;
/*			echo "<pre>";
			print_r($listgiohoa);
			echo "</pre>";
			die;*/
//end lấy danh sách 10 giỏ hoa,loại giỏ hoa bán chạy nhất

		} catch ( Exception $ex ) {
			echo 'can not pass index Action, Error: ' . $ex->getMessage;
		}
	}
	public function viewcategoryAction() {
		$loaigiohoa_id = $this->_getParam('loaigiohoa_id');
		$giohoa=new Application_Model_GioHoa();
		$this->view->listgiohoa = $giohoa->getGioHoaByCategory($loaigiohoa_id);
		
	}
	
	public function regisAction(){
		$form = new Application_Form_DangKy();
		$this->view->regisform = $form;
		if($this->getRequest()->isPost())
		{
			$formData = $this->getRequest()->getPost();
			
			if ($form->isValid($formData)) {
				$acc=new Application_Model_KhachHang();
				unset($formData['submit']);
				$formData['password']=md5($formData['password']);
				try{
					$activekey = $acc->generateActivekey ( $formData ['password'] );//Phát sinh active key
					$formData['activekey'] = $activekey;
					$acc->addKhachHangByArray($formData);
					
					//Gửi email
					
					$mailto = $formData['email'];
					$subject = "Đăng ký thành viên Shophoa";
					$baseUrl = "http://".$this->getRequest()->getHttpHost().$this->getFrontController()->getBaseUrl();
					$body = '<br/>
					Xin chúc mừng, bạn đã đăng ký thành viên thành công.<br/>
					Chỉ còn 1 bước nữa là bạn có thể sử dụng tài khoản đã đăng ký với chúng tôi<br/>
					Để hoàn thành việc đăng ký, vui lòng click vào link bên dưới. Hoặc copy và dán vào trình duyệt nếu link không hoạt động<br/>
					'.$baseUrl . '/index/active/key/' . $activekey.'/email/'.$formData['email'];
					$this->sendEmail($mailto, $subject, $body);
					
					//End of Gửi mail
					
					$this->_redirect('/index/notice');
				}catch (Exception $e){
					echo "<script> alert('";
					echo "Username đã được sử dụng";
					echo "');</script>";
				}
			} else {
				$form->populate($formData);
			}
		}
	}
	
	public function activeAction(){
		$activekey = $this->_request->getParam ( 'key' );
		$email = $this->_request->getParam ( 'email' );
		$khachhang_table = new Application_Model_KhachHang();
		$result = 	$khachhang_table->validateActive($activekey, $email);
		
		if(!empty($result)){//Dữ liệu ok
			if($result['trangthai'] == 0)//Chưa kích hoạt
			{
				$this->view->message = "Kích hoạt tài khoản thành công! <br/>Bạn có thể đăng nhập với tài khoản đã đăng ký.";
				//Cập nhật status cho khách hàng đó
				$khachhang_table->updateStatus($result['id'],2);
			}
			elseif($result['trangthai'] == 2)//Đã update
				$this->view->message = "Tài khoản này đã được kích hoạt rồi!";
			elseif($result['trangthai'] == 1)
				$this->view->message = "Tài khoản này đã bị khóa, vui lòng liên hệ với admin để được hỗ trợ thêm!";
		}
		else{//Dữ liệu sai
			$this->view->message = "Link kích hoạt của bạn đã hết hạn hoặc không hợp lệ, vui lòng kiểm tra lại!";
		}
	}
	
	
	public function sendEmail($mailto, $subject, $body) {
		$authDetails = new Zend_Mail_Transport_Smtp ( 'smtp.gmail.com',
				array ('auth' => 'login',
						'username' => 'flowerstoreonline@gmail.com',
						'password' => 'zendframework',
						'ssl' => 'SSL',
						'port' => 465 ) );
		Zend_Mail::setDefaultTransport ( $authDetails );
		$message = $subject;
		$mail = new Zend_Mail ( 'UTF-8' );
		$mail->setBodyHtml ( $body );
		$mail->addTo ($mailto);
		$mail->setSubject ( $subject );
		try{
			$mail->send();
		}catch(Exception $ex)
		{
			echo '<br/> Send mail erorr, Error :'.$ex->getMessage();
			exit;
		}
	}
	public function noticeAction()
	{
	}
	
	public function viewdetailAction()
	{
		$id=$this->_request->getParam('id');
		$giohoa=new Application_Model_GioHoa();
		$this->view->giohoadetail=$giohoa->getGioHoa($id);
	}
	
	 public function getListLoaigiohoa_bestselling(){
	 	$giohoa_table = new Application_Model_GioHoa ();
	 	$listgiohoa_id=$giohoa_table->getListLoaiGioHoaIDBest_selling();
	 	$listloaigiohoa=array();
	 	$loaigiohoa_table=new Application_Model_LoaiGioHoa();
	 	foreach ($listgiohoa_id as $key=>$value)
	 	{
	 		$loaigiohoa=$loaigiohoa_table->getLoaiGioHoa($value['loaigiohoa_id']);
	 		$listloaigiohoa[$key]=$loaigiohoa;
	 	}
	 	return $listloaigiohoa;
	 }
	 
	 public function getListGiohoa_bestselling(){
		$ct_ddh=new Application_Model_CTDonDatHang();
		$listloaigiohoa_id=$ct_ddh->getListGioHoa_bestselling();
		$listgiohoa=array();
		$giohoa_table=new Application_Model_GioHoa();
		foreach ($listloaigiohoa_id as $key=>$value)
		{
			$giohoa=$giohoa_table->getGioHoa($value['giohoa_id']);
			$listgiohoa[$key]=$giohoa;
		}
		return $listgiohoa;
	 }
	 
	 
	 public function tinhtientonghoaAction(){
	 	$this->_helper->layout->disableLayout();
	 	$this->_helper->viewRenderer->setNoRender(true);
	 	$hoa_table=new Application_Model_Hoa();
	 	
	 	$hoa_id=$this->_request->getParam('hoa_id');
	 	$slhoa=$this->_request->getParam('slhoa');
	 	$hoa=$hoa_table->getHoa($hoa_id);
	 	
	 	$dongia = $slhoa * $hoa['dongia'];
	 	
	 	$json = Zend_Json::encode ( $dongia );//Chuyển sang kiểu json
	 	print_r ( $json );
	 }
	 
	 public function searchAction(){
	 	$key=$this->_request->getParam('q');
	 	$giohoa_table=new Application_Model_GioHoa();
	 	$result=$giohoa_table->getresultsearch($key);
	 	$this->view->resultsearch=$result;
	 }
	 
	 public function errorloginAction(){
	 	
	 }
	 
	 public function ynghiaAction(){}
	 public function gioithieuAction(){
	 }
}
